﻿using MugenInjection.Syntax.Constant;
using MugenInjection.Syntax.Method;
using MugenInjection.Syntax.Type;

namespace MugenInjection.Interception.Syntax
{
    public interface IInterceptAsTargetTypeSyntax : IInterceptSyntax, ITypeCallbackObjectUseWithSyntax
    {
    }

    public interface IInterceptAsTargetMethodSyntax : IInterceptSyntax, IMethodCallbackObjectUseWithSyntax
    {
    }

    public interface IInterceptAsTargetConstantSyntax : IInterceptSyntax, IConstantObjectSyntax
    {
    }

    public interface IInterceptAsTargetTypeSyntax<T> : IInterceptSyntax<T>, ITypeCallbackObjectUseWithSyntax<T>
    {
    }

    public interface IInterceptAsTargetMethodSyntax<T> : IInterceptSyntax<T>, IMethodCallbackObjectUseWithSyntax<T>
    {
    }

    public interface IInterceptAsTargetConstantSyntax<T> : IInterceptSyntax<T>, IConstantObjectSyntax<T>
    {
    }
}